const arr1 = [1,1,2,3,4,5,5,6]
const arr2 = [1,1,2,3,4,5,5,6,88,99,88,77,66]
const setArr1 = [...new Set(arr1)]
const setArr2 = [...new Set(arr2)]

//并集
console.log([...new Set([...setArr1,...setArr2])])
//差集
console.log(setArr1.filter(item=>!new Set(setArr2).has(item)))
console.log(setArr2.filter(item=>!new Set(setArr1).has(item)))
//交集
console.log(setArr1.filter(item=>new Set(setArr2).has(item)))

console.log('-------------------------------------------------')



const arr3 = [
    { id: 1 },
    { id: 2 },
    { id: 3 },
    { id: 2 },
    { id: 4 },
    { id: 5 },
    { id: 1 },
    { id: 4 },
]
const arr4 = [
    { id: 1 },
    { id: 5 },
    { id: 1 },
]

const map = new Map()
const map1 = new Map()
arr3.map(item=>{
    if(!map.has(item.id)){
        map.set(item.id,item)
    }
})
arr4.map(item=>{
    if(!map1.has(item.id)){
        map1.set(item.id,item)
    }
})
const mapArr3 = [...map.values()]
const mapArr4 = [...map1.values()]
console.log(mapArr3,'mapArr3')
console.log(mapArr4,'mapArr4')

//并集
console.log([...mapArr3,...mapArr4])
//交集
console.log(mapArr3.filter(y=>mapArr4.find(x=>x.id === y.id)))
//差集
console.log(mapArr3.filter(y=>!mapArr4.find(x=>x.id === y.id)))
console.log(mapArr4.filter(y=>!mapArr3.find(x=>x.id === y.id)))